/**
 * 学生成绩管理系统 - JavaScript 功能实现
 * 这个文件包含登录功能，以及用户身份验证
 */

// 设置 Cookie 的函数
function setCookie(name, value, days) {
    let expires = "";
    if (days) {
        const date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

let users = JSON.parse(localStorage.getItem('users')) || [];

// ==================== 第二部分：登录功能 ====================

// 检查当前页面是否有登录表单(通过ID判断)
if (document.getElementById('loginForm')) {
    // 获取登录表单元素
    const loginForm = document.getElementById('loginForm');

    // 为表单添加提交事件监听器
    document.getElementById('loginForm').addEventListener('submit', function(e) {
        e.preventDefault();
        const username = document.getElementById('username').value;
        const password = document.getElementById('password').value;
        const statusMessage = document.getElementById('loginStatus');

        // 简单的前端验证
        if (!username.trim()) {
            showStatusMessage('请输入用户名', 'error');
            return;
        }

        if (!password) {
            showStatusMessage('请输入密码', 'error');
            return;
        }

        const user = {
            username: username,
            password: password
        };

        // 显示加载状态
        showStatusMessage('<i class="fas fa-spinner fa-spin"></i> 登录中...', 'loading');

        // 模拟API请求延迟
        setTimeout(() => {
            fetch('http://localhost:8080/user/login', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(user)
            })
                .then(response => response.json())
                .then(data => {
                    if (data.error) {
                        showStatusMessage(data.error, 'error');
                        return;
                    }

                    // 修正：从响应数据获取用户ID
                    const user_Id = data.id;
                    setCookie('user_id', user_Id, 2);

                    showStatusMessage('登录成功！正在跳转...', 'success');

                    // 根据角色跳转到不同页面
                    setTimeout(() => {
                        if (data.role === "admin") {
                            window.location.href = "manager_course.html";
                        } else if (data.role === "teacher") {
                            window.location.href = "teacher_class.html";
                        } else if (data.role === "student") {
                            window.location.href = "student_test1.html";
                        }
                    }, 1500);
                })
                .catch(error => {
                    console.error("登录请求出错:", error);
                    showStatusMessage('网络错误，请重试', 'error');
                });
        }, 800);
    });
}

// 显示状态消息的函数
function showStatusMessage(message, type) {
    const statusElement = document.getElementById('loginStatus');
    statusElement.style.display = 'block';
    statusElement.innerHTML = message;
    statusElement.className = 'status-message';

    if (type === 'success') {
        statusElement.classList.add('status-success');
    } else if (type === 'error') {
        statusElement.classList.add('status-error');
    } else if (type === 'loading') {
        statusElement.style.background = '#e2f0ff';
        statusElement.style.color = '#004085';
    }
}